package com.city.itis.action;

import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import com.city.itis.domain.MemberCategory;
import com.city.itis.service.MemberCategoryService;
import com.city.itis.util.Constants;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;


/**
 * 会员类别Action
 * @author WY
 *
 */

@Controller

public class MemberCategoryAction extends ActionSupport implements ModelDriven<MemberCategory>
{

	private static final long serialVersionUID = 1L;	//系统自动生成的版本序列号
	
	private List<MemberCategory> memberCategoryList=null; //申明memberCategoryList对象
	private MemberCategory memberCategory=new MemberCategory();	//定义memberCategory对象
	private String command=null; //用于判断执行的动作
	private MemberCategoryService memberCategoryService;	//声明memberCategoryService
	private String url=null; 	//定义字符串类型变量url,用于存放转向地址的。
	private String result=null;	//定义字符串类型变量，用户存放结果信息。
	
	/**
	 * 添加方法
	 * @return
	 */
	public String add() 
	{
		
		int flag=memberCategoryService.add(memberCategory);	//调用添加会员方法
		
		//判断是否添加成功 (flag>0:表示添加成功，flag<0:表示添加失败)
		if(flag>0)
		{
	
			url="/member_category/list.action";	//设置转向地址
			
			return SUCCESS;
		}else
		{
			return ERROR;
		}
		
	}
	
	
	/**
	 * 修改方法
	 * @return
	 */
	public String modify() 
	{
		
		int flag=memberCategoryService.modify(memberCategory);	//调用会员修改方法
		
		//判断是否添加成功 (flag>0:表示添加成功，flag<0:表示添加失败)
		if(flag>0)
		{
			url="/member_category/list.action";	//设置转向地址
			
			return SUCCESS;
			
		}else
		{
			return ERROR;
		}
		
	}
	
	
	
	/**
	 * 删除方法
	 * @return
	 */
	public String delete() 
	{
		int flag=memberCategoryService.delete(memberCategory);	//调用删除会员信息方法
		
		//判断是否添加成功 (flag>0:表示添加成功，flag<0:表示添加失败)
		if(flag>0)
		{
			url="/member_category/list.action";	//设置转向地址
			
			return SUCCESS;
			
		}else
		{
			return ERROR;
		}
		
	}
	
	/**
	 * 根据会员类别编号，查询会员类别信息
	 * @return
	 */
	public String find() 
	{
		Integer id=memberCategory.getId();	//取得会员类别编号
		
		if(id!=null) //判断会员类别编号是否为空
		{
			memberCategory=memberCategoryService.getMemberCategoryById(id);	//根据会员编号，调用查询会员方法。
			
			//判断查询目的（修改、删除、明细）
			if(Constants.MODIFY.equals(command))
			{
				url="/member_category/member_category_modify.jsp";	//设置转向地址
				
				return SUCCESS;
				
			}else if(Constants.DELETE.equals(command)) 
			{
				url="/member_category/member_category_delete.jsp";	//设置转向地址
				
				return SUCCESS;
			}else
			{
				return NONE;
			}
		}
		return ERROR;
		
	
	}
	/**
	 * 根据会员类别名称，查询会员类别信息方法。
	 * @return
	 * @throws Exception
	 */
	
	public String getMemberCategoryByMemberCategoryName()throws Exception
	{
		String name = new String(memberCategory.getName().getBytes("iso-8859-1"), "UTF-8");   
		
		 MemberCategory mc=memberCategoryService.getMemberCategoryByMemberCategory(name);	//根据会员类别名称，调用查询会员类别信息方法。
		 
		 if(mc!=null)
		 {
			result="会员类别已经存在";
		
		 }else
		 {
			result="恭喜您，该会员类别可用。";
			 
		 }
		return SUCCESS;
	}
	
	/**
	 * 根据会员类别编号，查询会员类别信息
	 * @return
	 */
	public String detail() 
	{
		
		memberCategory=memberCategoryService.getMemberCategoryById(memberCategory.getId());	//根据会员编号，调用查询会员方法。
		
		//判断memberCategory是否为null
		if(memberCategory!=null)
		{
			return SUCCESS;
		}else
		{
			return ERROR;
		}
		
		
		
	}

	/**
	 * 查询所有会员类别信息
	 * @return
	 */
	public String list() 
	{
		memberCategoryList=memberCategoryService.findAll();	//查询所有的会员类别信息
		
		//判断memberCategoryList是否为null
		if(memberCategoryList!=null)
		{
			url="/member_category/member_category_maint.jsp";	//设置转向地址
			
			return SUCCESS;
		}else 
		{
			return ERROR;
		}
	}
	

	//以下都是Get和Set方法
	public String getCommand()
	{
		return command;
	}


	public void setCommand(String command)
	{
		this.command = command;
	}

    

	public MemberCategoryService getMemberCategoryService() 
	{
		return memberCategoryService;
	}

    @Resource
	public void setMemberCategoryService(MemberCategoryService memberCategoryService)
    {
		this.memberCategoryService = memberCategoryService;
	}

    
	public List<MemberCategory> getMemberCategoryList() 
	{
		return memberCategoryList;
	}


	public void setMemberCategoryList(List<MemberCategory> memberCategoryList) 
	{
		this.memberCategoryList = memberCategoryList;
	}


	public MemberCategory getMemberCategory() 
	{
		return memberCategory;
	}


	public void setMemberCategory(MemberCategory memberCategory) 
	{
		this.memberCategory = memberCategory;
	}


	@Override
	public MemberCategory getModel() 
	{
		return memberCategory;
	}


	public String getUrl() 
	{
		return url;
	}


	public void setUrl(String url) 
	{
		this.url = url;
	}


	public String getResult() {
		return result;
	}


	public void setResult(String result) {
		this.result = result;
	}
	
	
	
}
